namespace CLELCore.Assembly.StreamTables
{
	public class StreamTable
	{
		public const int ASSEMBLY_TABLE = 0x20;
		public const int ASSEMBLYOS_TABLE = 0x22;
		public const int ASSEMBLYPROCESSOR_TABLE = 0x21;
		public const int ASSEMBLYREF_TABLE = 0x23;
		public const int ASSEMBLYREFOS_TABLE = 0x25;
		public const int ASSEMBLYREFPROCESSOR_TABLE = 0x24;
		public const int CLASSLAYOUT_TABLE = 0xf;
		public const int CONSTANT_TABLE = 0xb;
		public const int CUSTUMATTRIBUTE_TABLE = 0xc;
		public const int DECLSECURITY_TABLE = 0xe;
		public const int EVENTMAP_TABLE = 0x12;
		public const int EVENT_TABLE = 0x14;
		public const int EXPORTEDTYPE_TABLE = 0x27;
		public const int FIELD_TABLE = 0x4;
		public const int FIELDLAYOUT_TABLE = 0x10;
		public const int FIELDMARSHAL_TABLE = 0xd;
		public const int FIELDRVA_TABLE = 0x1d;
		public const int FILE_TABLE = 0x26;
		public const int GENERICPARAM_TABLE = 0x2a;
		public const int GENERICPARAMCONSTRAINT_TABLE = 0x2c;
		public const int IMPLMAP_TABLE = 0x1c;
		public const int INTERFACEIMPL_TABLE = 0x9;
		public const int MANIFESTRESOURCE_TABLE = 0x28;
		public const int MEMBERREF_TABLE = 0xa;
		public const int METHODDEF_TABLE = 0x6;
		public const int METHODSPEC_TABLE = 0x2b;
		public const int METHODIMPL_TABLE = 0x19;
		public const int METHODSEMANTICS_TABLE = 0x18;
		public const int MODULE_TABLE = 0x0;
		public const int MODULEREF_TABLE = 0x1a;
		public const int NESTEDCLASS_TABLE = 0x29;
		public const int PARAM_TABLE = 0x8;
		public const int PROPERTY_TABLE = 0x17;
		public const int PROPERTYMAP_TABLE = 0x15;
		public const int STANDALONESIG_TABLE = 0x11;
		public const int TYPEDEF_TABLE = 0x2;
		public const int TYPEREF_TABLE = 0x1;
		public const int TYPESPEC_TABLE = 0x1b;
		//add strings as special case
		//ENCMap and ENCLog are special cases that are generated for "edit and continue"
		public const int ENCLOG_TABLE = 0x1e;
		public const int ENCMAP_TABLE = 0x1f;

		private int _type;

		public int Type
		{
			get
			{
				return _type;
			}
			set
			{
				_type = value;
			}
		}

		public StreamTable(int type)
		{
			_type = type;
		}
	}
}
